from pydantic import BaseModel, EmailStr
from typing import Optional


class SendVerificationCodeRequest(BaseModel):
    """发送验证码请求模式
    
    用于忘记密码流程中请求发送验证码
    """
    email: EmailStr  # 用户邮箱
    username: str  # 用户名


class VerifyCodeRequest(BaseModel):
    """验证码验证请求模式
    
    用于忘记密码流程中验证验证码
    """
    email: EmailStr  # 用户邮箱
    code: str  # 验证码


class ResetPasswordRequest(BaseModel):
    """重置密码请求模式
    
    用于忘记密码流程中重置密码
    """
    email: EmailStr  # 用户邮箱
    code: str  # 验证码
    new_password: str  # 新密码
    confirm_password: str  # 确认密码